#include <ImageRgb.h>



using namespace Torch;

/*
*Auteur Tsafack Landry
*La classe profil décrit l'ensemble des opéraations que nous allons 
*réaliser pour extraire le profil d'intensité d'une ligne
*
*/

class Profil {

public:

  static const unsigned char WHITEColor = 255;
  //variable devant contenir l'image source
  ImageRgb *image;
  //nom du fichier image
  char *image_file_name;

  /* cette  fonction cree une image et lui donne la couleur blanche
   * comme couleur par defaut 
   */
  ImageRgb* whiteImage();
  
  /*cette fonction lit les valeurs d'intensite des pour une  couleur 
   *donnee dans une image sous la forme data et ecrit ces valeurs dans 
   *le tableau listOfColor // color = 0 pour rouge 1 pour vert et 2 pour blue
   */
  int* readColor(int index,int color);
  
  /*Cette fonction dessine la courbe d'intensite de la ligne line   
   *sur l'image image, les valeurs sont prises dans le tableau 
   *listOfcolor
   */
  void drawOnImage(Torch::ImageRgb *img,int *liste_intensite, int color);

 /*
  *la fonction ci dessus sauvegarde l'image de nom img sur le 
  *le disque 
  *unit = 0 pour image et 1 pour le profil d'intensite
  */
  void saveImage(Torch::ImageRgb *img, int unit);


  /*
  *cette fonction dessine une ligne sur l'image img
  *color ici représente la couleur 0 pour la couleur rouge 
  * 1 pour le vert et 2 pour le vert 
  */
  void drawLine(ImageRgb *img,int number,int color);

 /*
  *La fonction graduate image crée un repére d'unité 50 sur une image 
  * img
  */
  void graduateImage(ImageRgb *img);

  /*
   *Construteur
   */   
  Profil(char *name);
  ~Profil();
};

